home *** CD-ROM | disk | FTP | other *** search
- VERSION 5.00
- Begin VB.Form Form1
- BackColor = &H00000000&
- BorderStyle = 0 'None
- Caption = "CREATED BY RANTO & EL-SOL FROM ARGENTINA"
- ClientHeight = 3255
- ClientLeft = 1515
- ClientTop = 2925
- ClientWidth = 8640
- LinkTopic = "Form1"
- MaxButton = 0 'False
- MinButton = 0 'False
- ScaleHeight = 3255
- ScaleWidth = 8640
- ShowInTaskbar = 0 'False
- WindowState = 2 'Maximized
- Begin VB.Label Label7
- BackColor = &H00000000&
- ForeColor = &H0000FF00&
- Height = 255
- Left = 0
- TabIndex = 6
- Top = 1440
- Width = 1095
- End
- Begin VB.Label Label6
- BackColor = &H00000000&
- ForeColor = &H0000FF00&
- Height = 255
- Left = 0
- TabIndex = 5
- Top = 1200
- Width = 1095
- End
- Begin VB.Label Label5
- BackColor = &H00000000&
- ForeColor = &H0000FF00&
- Height = 255
- Left = 0
- TabIndex = 4
- Top = 960
- Width = 1095
- End
- Begin VB.Label Label4
- BackColor = &H00000000&
- ForeColor = &H0000FF00&
- Height = 255
- Left = 0
- TabIndex = 3
- Top = 720
- Width = 1095
- End
- Begin VB.Label Label3
- BackColor = &H00000000&
- ForeColor = &H0000FF00&
- Height = 255
- Left = 0
- TabIndex = 2
- Top = 480
- Width = 1095
- End
- Begin VB.Label Label2
- BackColor = &H00000000&
- ForeColor = &H0000FF00&
- Height = 255
- Left = 0
- TabIndex = 1
- Top = 240
- Width = 1095
- End
- Begin VB.Label Label1
- BackColor = &H00000000&
- ForeColor = &H0000FF00&
- Height = 255
- Left = 0
- TabIndex = 0
- Top = 0
- Width = 1095
- End
- Attribute VB_Name = "Form1"
- Attribute VB_GlobalNameSpace = False
- Attribute VB_Creatable = False
- Attribute VB_PredeclaredId = True
- Attribute VB_Exposed = False
- Dim LineaX1(1 To 10000) As Integer
- Dim LineaX2(1 To 10000) As Integer
- Dim LineaY1(1 To 10000) As Integer
- Dim LineaY2(1 To 10000) As Integer
- Dim LineaZ1(1 To 10000) As Integer
- Dim LineaZ2(1 To 10000) As Integer
- Dim RealX1(1 To 10000) As Integer
- Dim RealY1(1 To 10000) As Integer
- Dim RealX2(1 To 10000) As Integer
- Dim RealY2(1 To 10000) As Integer
- Dim OJOX As Long
- Dim OJOY As Long
- Dim OJOZ As Long
- Dim OJOANGULOX As Single
- Dim OJOANGULOY As Single
- Dim SINOJOANGULOX As Single
- Dim COSOJOANGULOX As Single
- Dim SINOJOANGULOY As Single
- Dim COSOJOANGULOY As Single
- Const PI As Double = 3.14159265358979
- Public LINEAS As Integer
- Dim A As Integer
- Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
- Select Case KeyCode
- Case vbKeyEscape
- Case vbKeyLeft
- OJOANGULOX = OJOANGULOX + 3
- Call ANGULOX
- Case vbKeyUp
- OJOZ = OJOZ + 10 * (SINOJOANGULOX) * SINOJOANGULOY
- OJOX = OJOX + 10 * (COSOJOANGULOX)
- OJOY = OJOY + 10 * (COSOJOANGULOY)
- Case vbKeyRight
- OJOANGULOX = OJOANGULOX - 3
- Call ANGULOX
- Case vbKeyDown
- OJOZ = OJOZ - 10 * (SINOJOANGULOX) * SINOJOANGULOY
- OJOX = OJOX - 10 * (COSOJOANGULOX)
- OJOY = OJOY - 10 * (COSOJOANGULOY)
- Case vbKeyZ
- OJOANGULOY = OJOANGULOY + 3
- Call ANGULOY
- Case vbKeyA
- OJOANGULOY = OJOANGULOY - 3
- Call ANGULOY
- Case vbKeyQ
- OJOANGULOY = 90
- OJOANGULOX = 90
- OJOZ = -250
- OJOX = 250
- OJOY = 250
- Call ANGULOY
- Call ANGULOX
- Case Else
- Exit Sub
- End Select
- Dibujar
- End Sub
- Private Function ANGULOX()
- 'CALCULAR EL SENO Y COSENO PARA QUE CUANDO DIBUJE NO TENGA QUE SACARLO TANTAS VECES.
- SINOJOANGULOX = Sin(OJOANGULOX * PI / 180)
- COSOJOANGULOX = Cos(OJOANGULOX * PI / 180)
- End Function
- Private Function ANGULOY()
- 'CALCULAR EL SENO Y COSENO PARA QUE CUANDO DIBUJE NO TENGA QUE SACARLO TANTAS VECES.
- SINOJOANGULOY = Sin(OJOANGULOY * PI / 180)
- COSOJOANGULOY = Cos(OJOANGULOY * PI / 180)
- End Function
- Private Sub Form_Load()
- Open (App.Path & "\CUBO.txt") For Input As #1
- Do While Not EOF(1)
- If EOF(1) = True Then Exit Do
- LINEAS = LINEAS + 1
- Input #1, LineaX1(LINEAS), LineaY1(LINEAS), LineaZ1(LINEAS), LineaX2(LINEAS), LineaY2(LINEAS), LineaZ2(LINEAS)
- OJOX = 250
- OJOY = 250
- OJOZ = -200
- OJOANGULOX = 90
- OJOANGULOY = 90
- Call ANGULOY
- Call ANGULOX
- Dibujar
- End Sub
- Private Sub Dibujar()
- For A = 1 To LINEAS
- Line (RealX1(A) + 6000, 4500 - RealY1(A))-(RealX2(A) + 6000, 4500 - RealY2(A)), 0
- X1 = (LineaX1(A) - OJOX) * SINOJOANGULOX - (LineaZ1(A) - OJOZ) * COSOJOANGULOX
- Y1 = (LineaY1(A) - OJOY) * SINOJOANGULOY - (LineaZ1(A) - OJOZ) * COSOJOANGULOY
- Z1 = ((LineaZ1(A) - OJOZ) * SINOJOANGULOX + (LineaX1(A) - OJOX) * COSOJOANGULOX - OJOZ) * SINOJOANGULOY - (LineaY1(A) - OJOX) * COSOJOANGULOY
- X2 = (LineaX2(A) - OJOX) * SINOJOANGULOX - (LineaZ2(A) - OJOZ) * COSOJOANGULOX
- Y2 = (LineaY2(A) - OJOY) * SINOJOANGULOY - (LineaZ2(A) - OJOZ) * COSOJOANGULOY
- Z2 = ((LineaZ2(A) - OJOZ) * SINOJOANGULOX + (LineaX2(A) - OJOX) * COSOJOANGULOX - OJOZ) * SINOJOANGULOY - (LineaY2(A) - OJOX) * COSOJOANGULOY
- If Z1 < X1 Or Z1 > OJOZ + 20000 Or Z1 < Y1 Then
- RealX1(A) = 0
- RealY1(A) = 0
- RealX2(A) = 0
- RealY2(A) = 0
- GoTo 666
- End If
- RealX1(A) = X1 * 15000 / ((X1 ^ 2 + Y1 ^ 2 + Z1 ^ 2) ^ (1 / 2))
- RealY1(A) = Y1 * 15000 / ((X1 ^ 2 + Y1 ^ 2 + Z1 ^ 2) ^ (1 / 2))
- RealX2(A) = X2 * 15000 / ((X2 ^ 2 + Y2 ^ 2 + Z2 ^ 2) ^ (1 / 2))
- RealY2(A) = Y2 * 15000 / ((X2 ^ 2 + Y2 ^ 2 + Z2 ^ 2) ^ (1 / 2))
- Line (RealX1(A) + 6000, 4500 - RealY1(A))-(RealX2(A) + 6000, 4500 - RealY2(A)), &HFF&
- 666 Next A
- Label1.Caption = "X =: " & OJOX
- Label2.Caption = "Y =: " & OJOY
- Label3.Caption = "Z =: " & OJOZ
- Label4.Caption = "AngX = " & OJOANGULOX
- Label5.Caption = "AngY = " & OJOANGULOY
- End Sub
- Private Sub Form_Unload(Cancel As Integer)
- Close #1
- End Sub
-